//// http://lists.boost.org/boost-users/2007/02/25191.php
//
//#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
//#define BOOST_MPL_LIMIT_VECTOR_SIZE 60
//
//#include <iostream>
//
//#include <boost/mpl/at.hpp>
//#include <boost/mpl/vector_c.hpp>
//#include <boost/mpl/for_each.hpp>
//#include <boost/mpl/transform.hpp>
//#include <boost/mpl/plus.hpp>
//#include <boost/mpl/negate.hpp>
//
//#include <boost/type_traits/add_pointer.hpp>
//
//#include "des_table_adjuster.hpp"
//
//using namespace boost::mpl;
//
//
//struct value_printer
//{
//	template< typename U > void operator()(U x)
//	{
//		std::cout << x << ' ';
//	}
//};
//
//
//
//int main( /* int argc, char* argv[] */ )
//{
//	typedef vector_c<int
//		, 57, 49, 41, 33, 25, 17,  9
//		,  1, 58, 50, 42, 34, 26, 18
//		, 10,  2, 59, 51, 43, 35, 27
//		, 19, 11,  3, 60, 52, 44, 36
//		, 63, 55, 47, 39, 31, 23, 15
//		,  7, 62, 54, 46, 38, 30, 22
//		, 14,  6, 61, 53, 45, 37, 29
//		, 21, 13,  5, 28, 20, 12,  4 > pc1_table;
//	
//	//typedef boost::mpl::vector_c<int, 6, 4, 2, 0, -2, -4, -6, -8> temp_table;	//TODO: renombrar
//
//	//
//
//
//	////const int value = at_c< pc1_table, 0 >::type::value;
//	////const int temp1 = ( (value-1) % CHAR_BIT );
//	////const int temp2 = at_c< temp_table, temp1 >::type::value;
//	////const int temp3 = value + temp2;
//
//
//	//const int value = at_c< pc1_table, 0 >::type::value;
//	//const int temp3 = value + at_c< temp_table, ( (value-1) % CHAR_BIT ) >::type::value;
//
//
//
//
//
//
//
//	for_each< pc1_table >( value_printer() );
//
//	std::cout << std::endl;
//	std::cout << std::endl;
//	std::cout << std::endl;
//
//
//	typedef transform< pc1_table, des_table_adjuster<_1> >::type result;
//	for_each< result >( value_printer() );
//
//	
//
//	return 0;
//}
